/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package geradorentidades;

import java.io.Serializable;
import java.util.List;
import javax.persistence.Basic;
import javax.persistence.CascadeType;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.ManyToMany;
import javax.persistence.NamedQueries;
import javax.persistence.NamedQuery;
import javax.persistence.OneToMany;
import javax.persistence.Table;

/**
 *
 * @author Familia
 */
@Entity
@Table(name = "slw_fornecedor")
@NamedQueries({
    @NamedQuery(name = "SlwFornecedor.findAll", query = "SELECT s FROM SlwFornecedor s"),
    @NamedQuery(name = "SlwFornecedor.findByIdFornecedor", query = "SELECT s FROM SlwFornecedor s WHERE s.idFornecedor = :idFornecedor"),
    @NamedQuery(name = "SlwFornecedor.findByNome", query = "SELECT s FROM SlwFornecedor s WHERE s.nome = :nome"),
    @NamedQuery(name = "SlwFornecedor.findByDocIdentificacao", query = "SELECT s FROM SlwFornecedor s WHERE s.docIdentificacao = :docIdentificacao"),
    @NamedQuery(name = "SlwFornecedor.findByTipoDocumento", query = "SELECT s FROM SlwFornecedor s WHERE s.tipoDocumento = :tipoDocumento"),
    @NamedQuery(name = "SlwFornecedor.findByEndereco", query = "SELECT s FROM SlwFornecedor s WHERE s.endereco = :endereco"),
    @NamedQuery(name = "SlwFornecedor.findByNumero", query = "SELECT s FROM SlwFornecedor s WHERE s.numero = :numero"),
    @NamedQuery(name = "SlwFornecedor.findByComplemento", query = "SELECT s FROM SlwFornecedor s WHERE s.complemento = :complemento"),
    @NamedQuery(name = "SlwFornecedor.findByBairro", query = "SELECT s FROM SlwFornecedor s WHERE s.bairro = :bairro"),
    @NamedQuery(name = "SlwFornecedor.findByCidade", query = "SELECT s FROM SlwFornecedor s WHERE s.cidade = :cidade"),
    @NamedQuery(name = "SlwFornecedor.findByEstado", query = "SELECT s FROM SlwFornecedor s WHERE s.estado = :estado")})
public class SlwFornecedor implements Serializable {
    private static final long serialVersionUID = 1L;
    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    @Basic(optional = false)
    @Column(name = "ID_FORNECEDOR")
    private Long idFornecedor;
    @Basic(optional = false)
    @Column(name = "NOME")
    private String nome;
    @Basic(optional = false)
    @Column(name = "DOC_IDENTIFICACAO")
    private int docIdentificacao;
    @Basic(optional = false)
    @Column(name = "TIPO_DOCUMENTO")
    private char tipoDocumento;
    @Column(name = "ENDERECO")
    private String endereco;
    @Column(name = "NUMERO")
    private Integer numero;
    @Column(name = "COMPLEMENTO")
    private String complemento;
    @Column(name = "BAIRRO")
    private String bairro;
    @Column(name = "CIDADE")
    private String cidade;
    @Column(name = "ESTADO")
    private String estado;
    @ManyToMany(mappedBy = "slwFornecedorList")
    private List<SlwProduto> slwProdutoList;
    @OneToMany(cascade = CascadeType.ALL, mappedBy = "slwFornecedor")
    private List<ContatoFornecedor> slwContatoFornecedorList;
    @OneToMany(cascade = CascadeType.ALL, mappedBy = "slwFornecedor")
    private List<SlwItem> slwItemList;

    public SlwFornecedor() {
    }

    public SlwFornecedor(Long idFornecedor) {
        this.idFornecedor = idFornecedor;
    }

    public SlwFornecedor(Long idFornecedor, String nome, int docIdentificacao, char tipoDocumento) {
        this.idFornecedor = idFornecedor;
        this.nome = nome;
        this.docIdentificacao = docIdentificacao;
        this.tipoDocumento = tipoDocumento;
    }

    public Long getIdFornecedor() {
        return idFornecedor;
    }

    public void setIdFornecedor(Long idFornecedor) {
        this.idFornecedor = idFornecedor;
    }

    public String getNome() {
        return nome;
    }

    public void setNome(String nome) {
        this.nome = nome;
    }

    public int getDocIdentificacao() {
        return docIdentificacao;
    }

    public void setDocIdentificacao(int docIdentificacao) {
        this.docIdentificacao = docIdentificacao;
    }

    public char getTipoDocumento() {
        return tipoDocumento;
    }

    public void setTipoDocumento(char tipoDocumento) {
        this.tipoDocumento = tipoDocumento;
    }

    public String getEndereco() {
        return endereco;
    }

    public void setEndereco(String endereco) {
        this.endereco = endereco;
    }

    public Integer getNumero() {
        return numero;
    }

    public void setNumero(Integer numero) {
        this.numero = numero;
    }

    public String getComplemento() {
        return complemento;
    }

    public void setComplemento(String complemento) {
        this.complemento = complemento;
    }

    public String getBairro() {
        return bairro;
    }

    public void setBairro(String bairro) {
        this.bairro = bairro;
    }

    public String getCidade() {
        return cidade;
    }

    public void setCidade(String cidade) {
        this.cidade = cidade;
    }

    public String getEstado() {
        return estado;
    }

    public void setEstado(String estado) {
        this.estado = estado;
    }

    public List<SlwProduto> getSlwProdutoList() {
        return slwProdutoList;
    }

    public void setSlwProdutoList(List<SlwProduto> slwProdutoList) {
        this.slwProdutoList = slwProdutoList;
    }

    public List<ContatoFornecedor> getSlwContatoFornecedorList() {
        return slwContatoFornecedorList;
    }

    public void setSlwContatoFornecedorList(List<ContatoFornecedor> slwContatoFornecedorList) {
        this.slwContatoFornecedorList = slwContatoFornecedorList;
    }

    public List<SlwItem> getSlwItemList() {
        return slwItemList;
    }

    public void setSlwItemList(List<SlwItem> slwItemList) {
        this.slwItemList = slwItemList;
    }

    @Override
    public int hashCode() {
        int hash = 0;
        hash += (idFornecedor != null ? idFornecedor.hashCode() : 0);
        return hash;
    }

    @Override
    public boolean equals(Object object) {
        // TODO: Warning - this method won't work in the case the id fields are not set
        if (!(object instanceof SlwFornecedor)) {
            return false;
        }
        SlwFornecedor other = (SlwFornecedor) object;
        if ((this.idFornecedor == null && other.idFornecedor != null) || (this.idFornecedor != null && !this.idFornecedor.equals(other.idFornecedor))) {
            return false;
        }
        return true;
    }

    @Override
    public String toString() {
        return "geradorentidades.SlwFornecedor[idFornecedor=" + idFornecedor + "]";
    }

}
